/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.hl7.v3;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.eclipse.emf.common.util.Enumerator;

/**
 * <!-- begin-user-doc -->
 * A representation of the literals of the enumeration '<em><b>Psychologist Provider Codes</b></em>',
 * and utility methods for working with them.
 * <!-- end-user-doc -->
 * <!-- begin-model-doc -->
 * specDomain: S20285 (C-0-T19465-S20275-S20285-cpt)
 * <!-- end-model-doc -->
 * @see org.hl7.v3.V3Package#getPsychologistProviderCodes()
 * @model extendedMetaData="name='PsychologistProviderCodes'"
 * @generated
 */
public enum PsychologistProviderCodes implements Enumerator {
	/**
	 * The '<em><b>103T00000X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103T00000X_VALUE
	 * @generated
	 * @ordered
	 */
	_103T00000X(0, "_103T00000X", "103T00000X"),

	/**
	 * The '<em><b>103TA0400X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TA0400X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TA0400X(1, "_103TA0400X", "103TA0400X"),

	/**
	 * The '<em><b>103TA0700X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TA0700X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TA0700X(2, "_103TA0700X", "103TA0700X"),

	/**
	 * The '<em><b>103TB0200X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TB0200X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TB0200X(3, "_103TB0200X", "103TB0200X"),

	/**
	 * The '<em><b>103TC2200X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TC2200X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TC2200X(4, "_103TC2200X", "103TC2200X"),

	/**
	 * The '<em><b>103TC0700X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TC0700X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TC0700X(5, "_103TC0700X", "103TC0700X"),

	/**
	 * The '<em><b>103TC1900X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TC1900X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TC1900X(6, "_103TC1900X", "103TC1900X"),

	/**
	 * The '<em><b>103TE1000X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TE1000X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TE1000X(7, "_103TE1000X", "103TE1000X"),

	/**
	 * The '<em><b>103TE1100X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TE1100X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TE1100X(8, "_103TE1100X", "103TE1100X"),

	/**
	 * The '<em><b>103TF0000X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TF0000X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TF0000X(9, "_103TF0000X", "103TF0000X"),

	/**
	 * The '<em><b>103TF0200X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TF0200X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TF0200X(10, "_103TF0200X", "103TF0200X"),

	/**
	 * The '<em><b>103TH0100X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TH0100X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TH0100X(11, "_103TH0100X", "103TH0100X"),

	/**
	 * The '<em><b>103TM1700X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TM1700X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TM1700X(12, "_103TM1700X", "103TM1700X"),

	/**
	 * The '<em><b>103TM1800X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TM1800X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TM1800X(13, "_103TM1800X", "103TM1800X"),

	/**
	 * The '<em><b>103TP0814X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TP0814X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TP0814X(14, "_103TP0814X", "103TP0814X"),

	/**
	 * The '<em><b>103TP2700X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TP2700X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TP2700X(15, "_103TP2700X", "103TP2700X"),

	/**
	 * The '<em><b>103TP2701X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TP2701X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TP2701X(16, "_103TP2701X", "103TP2701X"),

	/**
	 * The '<em><b>103TR0400X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TR0400X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TR0400X(17, "_103TR0400X", "103TR0400X"),

	/**
	 * The '<em><b>103TS0200X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TS0200X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TS0200X(18, "_103TS0200X", "103TS0200X"),

	/**
	 * The '<em><b>103TW0100X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_103TW0100X_VALUE
	 * @generated
	 * @ordered
	 */
	_103TW0100X(19, "_103TW0100X", "103TW0100X");

	/**
	 * The '<em><b>103T00000X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103T00000X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103T00000X
	 * @model literal="103T00000X"
	 * @generated
	 * @ordered
	 */
	public static final int _103T00000X_VALUE = 0;

	/**
	 * The '<em><b>103TA0400X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TA0400X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TA0400X
	 * @model literal="103TA0400X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TA0400X_VALUE = 1;

	/**
	 * The '<em><b>103TA0700X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TA0700X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TA0700X
	 * @model literal="103TA0700X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TA0700X_VALUE = 2;

	/**
	 * The '<em><b>103TB0200X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TB0200X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TB0200X
	 * @model literal="103TB0200X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TB0200X_VALUE = 3;

	/**
	 * The '<em><b>103TC2200X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TC2200X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TC2200X
	 * @model literal="103TC2200X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TC2200X_VALUE = 4;

	/**
	 * The '<em><b>103TC0700X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TC0700X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TC0700X
	 * @model literal="103TC0700X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TC0700X_VALUE = 5;

	/**
	 * The '<em><b>103TC1900X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TC1900X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TC1900X
	 * @model literal="103TC1900X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TC1900X_VALUE = 6;

	/**
	 * The '<em><b>103TE1000X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TE1000X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TE1000X
	 * @model literal="103TE1000X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TE1000X_VALUE = 7;

	/**
	 * The '<em><b>103TE1100X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TE1100X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TE1100X
	 * @model literal="103TE1100X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TE1100X_VALUE = 8;

	/**
	 * The '<em><b>103TF0000X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TF0000X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TF0000X
	 * @model literal="103TF0000X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TF0000X_VALUE = 9;

	/**
	 * The '<em><b>103TF0200X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TF0200X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TF0200X
	 * @model literal="103TF0200X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TF0200X_VALUE = 10;

	/**
	 * The '<em><b>103TH0100X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TH0100X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TH0100X
	 * @model literal="103TH0100X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TH0100X_VALUE = 11;

	/**
	 * The '<em><b>103TM1700X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TM1700X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TM1700X
	 * @model literal="103TM1700X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TM1700X_VALUE = 12;

	/**
	 * The '<em><b>103TM1800X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TM1800X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TM1800X
	 * @model literal="103TM1800X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TM1800X_VALUE = 13;

	/**
	 * The '<em><b>103TP0814X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TP0814X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TP0814X
	 * @model literal="103TP0814X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TP0814X_VALUE = 14;

	/**
	 * The '<em><b>103TP2700X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TP2700X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TP2700X
	 * @model literal="103TP2700X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TP2700X_VALUE = 15;

	/**
	 * The '<em><b>103TP2701X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TP2701X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TP2701X
	 * @model literal="103TP2701X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TP2701X_VALUE = 16;

	/**
	 * The '<em><b>103TR0400X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TR0400X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TR0400X
	 * @model literal="103TR0400X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TR0400X_VALUE = 17;

	/**
	 * The '<em><b>103TS0200X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TS0200X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TS0200X
	 * @model literal="103TS0200X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TS0200X_VALUE = 18;

	/**
	 * The '<em><b>103TW0100X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>103TW0100X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_103TW0100X
	 * @model literal="103TW0100X"
	 * @generated
	 * @ordered
	 */
	public static final int _103TW0100X_VALUE = 19;

	/**
	 * An array of all the '<em><b>Psychologist Provider Codes</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final PsychologistProviderCodes[] VALUES_ARRAY =
		new PsychologistProviderCodes[] {
			_103T00000X,
			_103TA0400X,
			_103TA0700X,
			_103TB0200X,
			_103TC2200X,
			_103TC0700X,
			_103TC1900X,
			_103TE1000X,
			_103TE1100X,
			_103TF0000X,
			_103TF0200X,
			_103TH0100X,
			_103TM1700X,
			_103TM1800X,
			_103TP0814X,
			_103TP2700X,
			_103TP2701X,
			_103TR0400X,
			_103TS0200X,
			_103TW0100X,
		};

	/**
	 * A public read-only list of all the '<em><b>Psychologist Provider Codes</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final List<PsychologistProviderCodes> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));

	/**
	 * Returns the '<em><b>Psychologist Provider Codes</b></em>' literal with the specified literal value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static PsychologistProviderCodes get(String literal) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			PsychologistProviderCodes result = VALUES_ARRAY[i];
			if (result.toString().equals(literal)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Psychologist Provider Codes</b></em>' literal with the specified name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static PsychologistProviderCodes getByName(String name) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			PsychologistProviderCodes result = VALUES_ARRAY[i];
			if (result.getName().equals(name)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Psychologist Provider Codes</b></em>' literal with the specified integer value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static PsychologistProviderCodes get(int value) {
		switch (value) {
			case _103T00000X_VALUE: return _103T00000X;
			case _103TA0400X_VALUE: return _103TA0400X;
			case _103TA0700X_VALUE: return _103TA0700X;
			case _103TB0200X_VALUE: return _103TB0200X;
			case _103TC2200X_VALUE: return _103TC2200X;
			case _103TC0700X_VALUE: return _103TC0700X;
			case _103TC1900X_VALUE: return _103TC1900X;
			case _103TE1000X_VALUE: return _103TE1000X;
			case _103TE1100X_VALUE: return _103TE1100X;
			case _103TF0000X_VALUE: return _103TF0000X;
			case _103TF0200X_VALUE: return _103TF0200X;
			case _103TH0100X_VALUE: return _103TH0100X;
			case _103TM1700X_VALUE: return _103TM1700X;
			case _103TM1800X_VALUE: return _103TM1800X;
			case _103TP0814X_VALUE: return _103TP0814X;
			case _103TP2700X_VALUE: return _103TP2700X;
			case _103TP2701X_VALUE: return _103TP2701X;
			case _103TR0400X_VALUE: return _103TR0400X;
			case _103TS0200X_VALUE: return _103TS0200X;
			case _103TW0100X_VALUE: return _103TW0100X;
		}
		return null;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final int value;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String name;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String literal;

	/**
	 * Only this class can construct instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private PsychologistProviderCodes(int value, String name, String literal) {
		this.value = value;
		this.name = name;
		this.literal = literal;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getValue() {
	  return value;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getName() {
	  return name;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getLiteral() {
	  return literal;
	}

	/**
	 * Returns the literal value of the enumerator, which is its string representation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		return literal;
	}
	
} //PsychologistProviderCodes
